Ionic অ্যাপ্লিকেশনগুলোর জন্য Background Services গুরুত্বপূর্ণ হতে পারে, বিশেষত যখন আপনি অ্যাপের বাইরে থাকলেও কিছু প্রক্রিয়া চালিয়ে রাখতে চান, যেমন ডেটা সিঙ্ক করা, নোটিফিকেশন পাঠানো, অথবা ব্যাকগ্রাউন্ডে অডিও/ভিডিও প্লে করা। তবে, Ionic নিজে থেকে ব্যাকগ্রাউন্ড কাজ পরিচালনার জন্য ডিফল্টভাবে কোনও API সরবরাহ করে না, তবে আপনি কিছু প্লাগইন ব্যবহার করে ব্যাকগ্রাউন্ড কাজ করতে পারেন।
এখানে Ionic অ্যাপে ব্যাকগ্রাউন্ড সার্ভিস ব্যবহারের কৌশল এবং কিছু জনপ্রিয় প্লাগইন নিয়ে আলোচনা করা হবে।
১. Background Fetch (ফোরগ্রাউন্ড এবং ব্যাকগ্রাউন্ড কাজ)
Ionic অ্যাপে Background Fetch ব্যবহার করে আপনি ব্যাকগ্রাউন্ডে ডেটা সিঙ্ক করতে পারেন। এটি একটি প্লাগইন যা অ্যাপকে ব্যাকগ্রাউন্ডে ডেটা আপডেট করার সুবিধা দেয়।
Background Fetch প্লাগইন ইনস্টল করা
npm install @ionic-native/background-fetch
Platform সেটআপ
app.module.ts এ প্লাগইনটি ইনস্টল করুন:
import { BackgroundFetch } from '@ionic-native/background-fetch/ngx';
@NgModule({
providers: [
BackgroundFetch
]
})
export class AppModule {}
ব্যাকগ্রাউন্ড ফেচ শুরু করা
ব্যাকগ্রাউন্ড সার্ভিসে কাজ শুরু করতে, অ্যাপের এক্সিকিউটেবল কোডে (যেমন home.page.ts) নিচের কোড ব্যবহার করা যেতে পারে:
import { Component } from '@angular/core';
import { BackgroundFetch } from '@ionic-native/background-fetch/ngx';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor(private backgroundFetch: BackgroundFetch) {}
// Background fetch চালু করা
startBackgroundFetch() {
this.backgroundFetch.configure({
minimumFetchInterval: 15, // মিনিট হিসেবে
stopOnTerminate: false, // অ্যাপ বন্ধ হলেও কাজ চালু থাকবে
startOnBoot: true // ডিভাইস রিস্টার্ট হলে আবার চালু হবে
}).then(() => {
console.log('Background Fetch Initialized');
this.backgroundFetch.finish(); // কাজ সম্পন্ন হলে
}).catch(error => {
console.error('Background fetch failed', error);
});
}
}
এখানে:
minimumFetchInterval: প্রতি কত মিনিট পর ব্যাকগ্রাউন্ড ফেচ চলবে তা নির্ধারণ করে।stopOnTerminate: অ্যাপ টার্মিনেট হওয়ার পরও সার্ভিস চালু রাখবে কি না তা নির্ধারণ করে।startOnBoot: ডিভাইস রিস্টার্ট হলে সার্ভিসটি আবার চালু হবে।
২. Background Geolocation (অবস্থান ট্র্যাকিং)
আপনি যদি ব্যবহারকারীর অবস্থান ট্র্যাক করতে চান, তবে Background Geolocation প্লাগইন ব্যবহার করতে পারেন। এটি ব্যবহারকারী যখন ব্যাকগ্রাউন্ডে থাকে তখনও তাদের অবস্থান ট্র্যাক করবে।
Background Geolocation প্লাগইন ইনস্টল করা
npm install @ionic-native/background-geolocation
Platform সেটআপ
app.module.ts এ প্লাগইনটি ইনস্টল করুন:
import { BackgroundGeolocation } from '@ionic-native/background-geolocation/ngx';
@NgModule({
providers: [
BackgroundGeolocation
]
})
export class AppModule {}
ব্যাকগ্রাউন্ড অবস্থান ট্র্যাকিং
import { Component } from '@angular/core';
import { BackgroundGeolocation } from '@ionic-native/background-geolocation/ngx';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor(private backgroundGeolocation: BackgroundGeolocation) {}
// Geolocation শুরু করা
startTracking() {
const config = {
desiredAccuracy: 10,
stationaryRadius: 20,
distanceFilter: 30,
debug: true, // ডিবাগ মোড
stopOnTerminate: false,
startOnBoot: true
};
this.backgroundGeolocation.configure(config)
.then(() => {
console.log('Location tracking started');
this.backgroundGeolocation.on('location', (location) => {
console.log(location); // অবস্থান তথ্য
});
this.backgroundGeolocation.start();
})
.catch((error) => {
console.log('Error starting background geolocation: ', error);
});
}
}
এখানে:
desiredAccuracy: ব্যবহারকারীর অবস্থানের সঠিকতা নির্ধারণ করে।stationaryRadius: ব্যবহারকারী যে সীমার মধ্যে স্থির থাকবে সে জন্য রেডিয়াস নির্ধারণ করা।distanceFilter: অবস্থান পরিবর্তন হওয়া পর্যন্ত কিরকম দূরত্ব থাকতে হবে তা নির্ধারণ করে।debug: ডিবাগ মোড চালু করে।stopOnTerminateএবংstartOnBoot: অ্যাপ বন্ধ হলে ট্র্যাকিং বন্ধ হবে না এবং ডিভাইস রিস্টার্ট হলে ট্র্যাকিং আবার শুরু হবে।
৩. Push Notifications (ব্যাকগ্রাউন্ড নোটিফিকেশন)
Push notifications ব্যবহার করে আপনি ব্যবহারকারীকে অ্যাপ বন্ধ থাকার পরেও নোটিফিকেশন পাঠাতে পারেন। Ionic অ্যাপে OneSignal বা Firebase Cloud Messaging (FCM) ব্যবহৃত হয়।
OneSignal প্লাগইন ইনস্টল করা
npm install @ionic-native/onesignal
OneSignal সেটআপ
import { OneSignal } from '@ionic-native/onesignal/ngx';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor(private oneSignal: OneSignal) {}
// OneSignal সেটআপ
startPushNotifications() {
this.oneSignal.startInit('your-app-id', 'your-sender-id');
this.oneSignal.handleNotificationReceived().subscribe((data) => {
console.log('Notification received:', data);
});
this.oneSignal.handleNotificationOpened().subscribe((data) => {
console.log('Notification opened:', data);
});
this.oneSignal.endInit();
}
}
এখানে:
- Notification Received: ব্যবহারকারী যখন নোটিফিকেশন গ্রহণ করেন।
- Notification Opened: ব্যবহারকারী যখন নোটিফিকেশন ওপেন করেন।
৪. Local Notifications (স্থানীয় নোটিফিকেশন)
Ionic অ্যাপে Local Notifications ব্যবহার করে আপনি অ্যাপের ভিতরে নিজস্ব নোটিফিকেশন পাঠাতে পারেন।
Local Notifications প্লাগইন ইনস্টল করা
npm install @ionic-native/local-notifications
Local Notifications সেটআপ
import { LocalNotifications } from '@ionic-native/local-notifications/ngx';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor(private localNotifications: LocalNotifications) {}
// স্থানীয় নোটিফিকেশন পাঠানো
scheduleNotification() {
this.localNotifications.schedule({
id: 1,
title: 'Hello!',
text: 'This is a background notification',
trigger: { at: new Date(new Date().getTime() + 5000) }, // 5 সেকেন্ড পর নোটিফিকেশন হবে
led: 'FF0000',
sound: null
});
}
}
এখানে:
- trigger: নোটিফিকেশন কখন পাঠাতে হবে তা নির্ধারণ করে (এখানে 5 সেকেন্ড পর নোটিফিকেশন পাঠানো হবে)।
সারাংশ
Ionic অ্যাপে Background Services ব্যবহারের কৌশলগুলি ব্যাকগ্রাউন্ডে দীর্ঘ সময় ধরে চলতে থাকা প্রক্রিয়া (যেমন ডেটা সিঙ্ক, অবস্থান ট্র্যাকিং, বা নোটিফিকেশন পাঠানো) পরিচালনা করতে সহায়তা করে। এই প্লাগইনগুলো ব্যবহার করে আপনি বিভিন্ন ব্যাকগ্রাউন্ড টাস্ক সম্পন্ন করতে পারবেন:
- Background Fetch: ব্যাকগ্রাউন্ডে ডেটা সিঙ্ক।
- Background Geolocation: অবস্থান ট্র্যাকিং।
- Push Notifications: অ্যাপ বন্ধ থাকলেও নোটিফিকেশন পাঠানো।
- Local Notifications: অ্যাপের ভিতর থেকেই স্থানীয় নোটিফিকেশন পাঠানো।
এই প্লাগইনগুলো ব্যাকগ্রাউন্ড প্রক্রিয়া চালানোর জন্য সহজ এবং কার্যকরী উপায় সরবরাহ করে।
Read more